package ipt.pru.f2;

import java.util.Random;
import java.util.Scanner;

/**
 * Clase para generar un numero aleatorio de 0 a 16
 * 
 * @author Alumno 5
 * @author Alumno 6
 * @author Alumno 7
 * @author Alumno 8
 * @version 1.0
 */
public class Dado {

	private static final int NUMERO_ALUMNOS = 16;

	/**
	 * Metodo que nos muestra el nombre y los dos apellidos del alumno cuyo
	 * numero corresponde con el que ha tocado en el dado
	 * 
	 * Incluye la exclusion de los numeros 4 y 13, porque estos puestos se
	 * encuentran desocupados
	 * 
	 */
	public static void respondeAlumno() {
		int seleccionado = 4;
		String respuesta;

		Random randomGenerator = new Random();

		do {
			seleccionado = randomGenerator.nextInt(NUMERO_ALUMNOS);
		} while (seleccionado == 4 || seleccionado == 13);

		Alumno[] aAlumno;
		aAlumno = Alumno.inicializarAlumnos();
		System.out.println("Responde :" + aAlumno[seleccionado].getNombre()
				+ " " + aAlumno[seleccionado].getApellido1() + " "
				+ aAlumno[seleccionado].getApellido2() + "\n");

		//Pregunta sin se desea llamar al metodo pintarClase para mostrar un diagrama
		System.out.println("Deseas imprimir la clase por pantalla (S/N)");
		Scanner teclado = new Scanner(System.in);
		respuesta = teclado.nextLine();
		respuesta = respuesta.toUpperCase();
		if ("S".equalsIgnoreCase(respuesta)) {
			pintarClase(seleccionado);
		}
	}

	/**
	 * Metodo que muestra por pantalla un diagrama de la clase indicando con una X la posions del alumno elegido
	 * 
	 * @param elegido  es el numero del alumno elegido *
	 */
	public static void pintarClase(int elegido) {
		String[] pos = new String[17];
		for (int i = 0; i < 17; i++) {
			if (i == elegido) {
				pos[i] = "X";
			} else {
				pos[i] = " ";
			}
		}

		System.out.println("         [ " + pos[0] + " ]      ");
		System.out.println("           0        \n");
		System.out.println("[ " + pos[1] + " ] [ " + pos[2] + " ] [ " + pos[3]
				+ " ] [ " + pos[4] + " ]");
		System.out.println("  1     2     3     4   \n");
		System.out.println("[ " + pos[5] + " ] [ " + pos[6] + " ] [ " + pos[7]
				+ " ] [ " + pos[8] + " ]");
		System.out.println("  5     6     7     8   \n");
		System.out.println("[ " + pos[9] + " ] [ " + pos[10] + " ] [ "
				+ pos[11] + " ] [ " + pos[12] + " ]");
		System.out.println("  9    10    11    12  \n");
		System.out.println("[ " + pos[13] + " ] [ " + pos[14] + " ] [ "
				+ pos[15] + " ] [ " + pos[16] + " ]");
		System.out.println(" 13    14    15    16  \n");
	}

	public static final void main(String... aArgs) {
		respondeAlumno();
	}

}
